package com.ruyuan.eshop.common.service.trade.order;

import com.ruyuan.eshop.framework.core.WebPage;
import com.ruyuan.eshop.common.domain.entity.OrderOutStatusDO;
import com.ruyuan.eshop.common.enums.OrderOutStatusEnum;
import com.ruyuan.eshop.common.enums.OrderOutTypeEnum;

/**
 * 订单出库状态业务层
 * @author pwd
 * @version 1.0
 */
public interface OrderOutStatusService {

	/**
	 * 查询订单出库状态列表
	 * @param page 页码
	 * @param pageSize 每页数量
	 * @return WebPage
	 */
	WebPage list(long page, long pageSize);

	/**
	 * 添加订单出库状态
	 * @param orderOutStatusDO 订单出库状态
	 * @return OrderOutStatus 订单出库状态
	 */
	OrderOutStatusDO add(OrderOutStatusDO orderOutStatusDO);

	/**
	* 修改订单出库状态
	* @param orderSn 订单编号
	* @param typeEnum 出库类型
	* @param  statusEnum  出库状态
	* @return OrderOutStatus 订单出库状态
	*/
	void edit(String orderSn, OrderOutTypeEnum typeEnum, OrderOutStatusEnum statusEnum);

	/**
	 * 删除订单出库状态
	 * @param id 订单出库状态主键
	 */
	void delete(Long id);

	/**
	 * 获取订单出库状态
	 * @param orderSn	订单编号
	 * @param typeEnum	出库类型
	 * @return OrderOutStatus  订单出库状态
	 */
	OrderOutStatusDO getModel(String orderSn, OrderOutTypeEnum typeEnum);

}
